package com.yingpai.fitness.dvp_2_0.main.util;

import android.content.res.ColorStateList;
import android.graphics.drawable.Drawable;
import android.support.annotation.NonNull;
import android.support.v4.graphics.drawable.DrawableCompat;

/**
 * =================================================
 * 作者: 国斌
 * 邮箱: remebermelula@aliyun.com
 * 时间: 2018/4/4
 * 类名:  PictureColorUtil .java
 * 版本: V 1.0
 * 描述:图片着色工具类
 * 例如 在导航返回时  有时因为界面的不同，需要不同颜色的图片，这样切图多，且App体积也会增加
 * 使用该工具类  可以将一个基础图片 着色成想要的颜色
 * <p>
 * ===============================================
 */


public class PictureColorUtil {
    /**
     * 将图片着色成想要的颜色
     *
     * @param drawable 目标图片
     * @param color    目标颜色
     * @return 着色后的图片
     */
    public static Drawable getTintDrawable(@NonNull Drawable drawable, @NonNull int color) {
        Drawable d = DrawableCompat.wrap(drawable);
        DrawableCompat.setTint(d, color);
        return d;
    }

    /**
     * 对目标Drawable 进行着色
     *
     * @param drawable 目标Drawable
     * @param colors   着色值
     * @return 着色处理后的Drawable
     */
    public static Drawable getTintListDrawable(@NonNull Drawable drawable, ColorStateList colors) {
        Drawable wrappedDrawable = DrawableCompat.wrap(drawable);
        // 进行着色
        DrawableCompat.setTintList(wrappedDrawable, colors);
        return wrappedDrawable;
    }


}
